package com.platform.common.util;

import java.lang.reflect.Type;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;

/**
   Json对象装换工具
 */
public class GsonUtils{

	/**
	 * key 分隔符
	 */
//	private static String KEY_SPLIT_FLAG = ".";

	/**
	 * Gson实例
	 */
	private static Gson gson = new GsonBuilder().setDateFormat("yyyy-MM-dd HH:mm:ss").create();  

	private static Gson format = new GsonBuilder().setDateFormat("yyyy-MM-dd HH:mm:ss").setPrettyPrinting().create();

	/**
	 * 
	   @Desecration  
	   @return String
	   @author xieyang
	   @date 2016年5月26日
	 */
	public static   String  parseBeanToJson(Object object) {
		return gson.toJson(object);
	}
	
	/**
	 * TODO 格式化json
	 * @author zhanghan
	 * @date	2016-11-28
	 */
	public static String parseBeanToFormatJson(Object object) {
		return format.toJson(object);
	}

	/**
	 * 将json串转换成java对象
	 * 
	 * @param <T>
	 * @param classes
	 * @param json
	 * @return
	 */
	public static <T> T parseJsonToBean(Class<T> classes, String json) {
		T t= gson.fromJson(json, classes);
		return t;
	}
	
	/**
	 * 将json串转换成java对象
	 * 
	 * @param Type
	 * @param json
	 * @return
	 */
	 public static <T> T fromJson(String str, Type type) {  
	     T t= gson.fromJson(str, type);
	     return  t; 
	 }
	 
	/**
	 * 判断String是否是空 为空的情况包含：对象为空,为空字符串（""）,为字符串"null"
	 * 
	 * @param value
	 * @return
	 */
	public static boolean isBlank(String value) {
		if (value == null || "".equals(value.trim())
				|| "null".equals(value.trim())) {
			return true;
		}
		return false;
	}
}
